package percistencia;

import java.awt.List;
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.StringTokenizer;

import logica.Estudiante;

public class Archivo {

	/**
	 * @param args
	 */
	
	private File archivo;
	
	private PrintWriter writer;
	
	private FileReader reader;
	
	String URI="estudiantes.txt";
	
	private ArrayList<Estudiante> estudiantes;
	public Archivo() {
		archivo=new File(URI);
		estudiantes=new ArrayList<Estudiante>();
	}
	/*
	 * 
	 */
	public void guardarEstudiantes(ArrayList<Estudiante> e) {
		try{
		if(archivo.delete()){
			System.out.println("Archivo Borrado");
			if(archivo.createNewFile()){
				System.out.println("Archivo creado de manera exitosa en guardar Estudiantes");
			}
		}
		else{
			System.out.println("El archivo no se ha podido borrar en Guardar Estudiantes");
		}
		writer=new PrintWriter(archivo);
		
		Iterator<Estudiante> iEstudiantes=e.iterator();
		while(iEstudiantes.hasNext()){
			Estudiante tmpEstud=iEstudiantes.next();
			writer.write(tmpEstud.getNombre()+
				     ","+tmpEstud.getApellido()+
				     ","+tmpEstud.getCedula()+
				     ","+tmpEstud.getTelefono()+"\n");
		}
		}catch (IOException t) {
			System.out.println("Error al guardad los estudiantes...");
		}
		writer.close();
	}
	
	private boolean verificarEstudiante(Estudiante tmpEstud) {
		if(tmpEstud.getNombre() == null | tmpEstud.getApellido()==null){
			return false;
		}
		if(tmpEstud.getCedula()== 0 | tmpEstud.getTelefono()==0){
			return false;
		}
		return true;
		
	}
	public ArrayList<Estudiante> tomarEstudiantes() {
		try{
		estudiantes=new ArrayList<Estudiante>();
	    String estudianteArchivo;
		reader=new FileReader(archivo);
		Estudiante estudiantetmp;
		BufferedReader br=new BufferedReader(reader);
		while((estudianteArchivo=br.readLine())!=null){
			estudiantetmp=new Estudiante();
			StringTokenizer d=new StringTokenizer(estudianteArchivo,",");
			estudiantetmp.setNombre((String)d.nextElement());
			estudiantetmp.setApellido((String)d.nextElement());
			estudiantetmp.setCedula(Integer.parseInt((String)d.nextElement()));
		    estudiantetmp.setTelefono(Integer.parseInt((String)d.nextElement()));
		    estudiantes.add(estudiantetmp);
		}
		
		}catch(FileNotFoundException e){
			System.out.println(e.getMessage());
		}catch (IOException e) {
			System.out.println(e.getMessage());
		}
		return estudiantes;
		
		

	}

}